// 和后台配合必要条件
// - 地址               192.168.x.x:端口
// - 请求方式            post / get / put / delect
// - 字段（参数、数据）：  a=string&b=number&c=object&d=Array

function queryStr(obj) {
    const arr = []

    // username=admin&password=123456

    // 一个对象不确定里面值是什么，还想拿里面的值
    // for in 循环
    for (let attr in obj) {
        // console.log(attr)       // 属性名
        // console.log(obj[attr])  // 属性值
        // console.log(attr + '=' + obj[attr])
        arr.push(attr + '=' + obj[attr])
    }
    return arr.join('&')
}

function ajax(options) {
    // 判断是否写URL
    if (options.url === '') {
        // 如果是空就不执行下面的代码了
        return
    }

    // 默认参数1. type  2. data
    options.type = options.type || 'get'        // 默认 'get'
    options.data = options.data || {}           // 默认 {}

    // username=admin&password=123456
    // console.log(options.data)
    let str = queryStr(options.data)

    // 1. 创建
    let xhr = new XMLHttpRequest()

    // 判断当前使用的是什么方式
    if (options.type === 'get') {
        // 2. 连接
        xhr.open('get', options.url + '?' + str, true)
        // 3. 发送
        xhr.send()
    } else if (options.type === 'post') {
        // 2. 连接
        xhr.open('post', options.url, true)
        // 设置一个请求头
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
        // 3. 发送
        xhr.send(str)
    }

    // 4. 接收
    xhr.onload = function () {
        // console.log(xhr.responseText)
        // alert(xhr.responseText)
        // 成功回调函数
        options.success(xhr.responseText)
    }
}